﻿using System;
using Dominio;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Persistencia;

namespace PruebasUnitarias
{
    [TestClass]
    public class TestTanque
    {
        [TestMethod]
        public void CrearTanqueCombustible()
        {
            ObjetoPersistible.per = new PersistenciaImplementacion.PersisImplem();

            int tanquesActuales = Sistema.GetSistema().ObtenerTanques().Count;

            Contenido contenido = new Contenido("Super95SP");
            Tanque t = new TanqueCombustible("Tanque", 100, contenido, 2);
            t.Create();
            Sistema.GetSistema().AgregarTanque(t);

            int tanquesActualesDespues = Sistema.GetSistema().ObtenerTanques().Count;
            int cantidadEsperada = tanquesActuales + 1;
            Assert.AreEqual(cantidadEsperada, tanquesActualesDespues);
        }

        [TestMethod]
        public void CrearTanqueAgua()
        {
            ObjetoPersistible.per = new PersistenciaImplementacion.PersisImplem();

            int tanquesActuales = Sistema.GetSistema().ObtenerTanques().Count;

            Tanque t = new TanqueAgua("Tanque Agua", 100, "Subterraneo", 1);
            t.Create();
            Sistema.GetSistema().AgregarTanque(t);

            int tanquesActualesDespues = Sistema.GetSistema().ObtenerTanques().Count;
            int cantidadEsperada = tanquesActuales + 1;
            Assert.AreEqual(cantidadEsperada, tanquesActualesDespues);
        }

        [TestMethod]
        public void CrearTanqueAceite()
        {
            ObjetoPersistible.per = new PersistenciaImplementacion.PersisImplem();

            int tanquesActuales = Sistema.GetSistema().ObtenerTanques().Count;

            Tanque t = new TanqueAceite("Tanque aceite", 100, 13, 3);
            t.Create();
            Sistema.GetSistema().AgregarTanque(t);

            int tanquesActualesDespues = Sistema.GetSistema().ObtenerTanques().Count;
            int cantidadEsperada = tanquesActuales + 1;
            Assert.AreEqual(cantidadEsperada, tanquesActualesDespues);
        }
    }
}
